//===============================================================================
// Microsoft Architecture Strategy Team
// LitwareHR - SaaS Sample Application
//===============================================================================
// Copyright  Microsoft Corporation.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================
// The example companies, organizations, products, domain names,
// e-mail addresses, logos, people, places, and events depicted
// herein are fictitious.  No association with any real company,
// organization, product, domain name, email address, logo, person,
// places, or events is intended or should be inferred.
//===============================================================================


//===============================================================================
// Microsoft Architecture Strategy Team
// LitwareHR - SaaS Sample Application
//===============================================================================
// Copyright  Microsoft Corporation.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================
// The example companies, organizations, products, domain names,
// e-mail addresses, logos, people, places, and events depicted
// herein are fictitious.  No association with any real company,
// organization, product, domain name, email address, logo, person,
// places, or events is intended or should be inferred.
//===============================================================================



using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using LitwareHR.PrivateApp.Presenters.ConfigCusto;
using Shp.Runtime.Contract;

public partial class ConfigCusto_EditMainMenu : BasePage, IEditMainMenuView
{
    EditMainMenuPresenter _presenter;
    EditMainMenuPresenter Presenter
    {
        get
        {
            return _presenter;
        }
    }

    private List<MainMenuItem> MainMenuItems
    {
        get
        {
            List<MainMenuItem> mainMenuItems = ViewState[Constants.MenuItemsViewStateKey] as List<MainMenuItem>;
            if (mainMenuItems == null)
            {
                mainMenuItems = new List<MainMenuItem>();
                ViewState[Constants.MenuItemsViewStateKey] = mainMenuItems;
            }
            return mainMenuItems;
        }
        set
        {
            ViewState[Constants.MenuItemsViewStateKey] = value;
        }
    }

    protected override void OnInitComplete(EventArgs e)
    {
        base.OnInitComplete(e);
        _presenter = new EditMainMenuPresenter(this);
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Presenter.OnViewLoaded();
        }
    }

    protected void AddButton_Click(object sender, EventArgs e)
    {
        string description = DescriptionTextBox.Text;
        bool isPublic = IsPublicCheckbox.Checked;
        string url = UrlTextBox.Text;
        Presenter.OnAdd(description, isPublic, url, this.MainMenuItems.ToArray());
    }

    protected void SaveButton_Click(object sender, EventArgs e)
    {
        Presenter.OnSave(this.MainMenuItems.ToArray());
    }

    protected void MainMenuItemsGrid_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        Presenter.OnRemove(e.RowIndex, this.MainMenuItems.ToArray());
    }

    public void ShowMainMenuItems(MainMenuItem[] list)
    {
        this.MainMenuItems = new List<MainMenuItem>(list);
        MainMenuItemsGrid.DataSource = list;
        MainMenuItemsGrid.DataBind();
    }

    public void ResetForm()
    {
        DescriptionTextBox.Text = "";
        UrlTextBox.Text = "";
        IsPublicCheckbox.Checked = false;
    }
}
